From: Florian Müllner Date: Fri, 4 Nov 2022 18:53:57 +0000 (+0100) Subject: status/network: Fix name of initially hidden devices X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~405^2^2~263 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b2ff25b31d4e11601169f623b47ea503c93aed77;p=gnome-shell.git status/network: Fix name of initially hidden devices We assign (disambiguated) device names every time a device is added or removed, and store the name on the corresponding menu item. However menu items are only created when the device should be shown, not necessarily when it is added (unplugged ethernet cable, ongoing initialization, ...). Fix this by tracking device names separately from device items, and set the name on newly created items. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6040 Part-of: --- diff --git a/js/ui/status/network.js b/js/ui/status/network.js index 4cc9bbdd0..37ef97784 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -1559,6 +1559,7 @@ class NMDeviceToggle extends NMToggle { this._deviceType = deviceType; this._nmDevices = new Set(); + this._deviceNames = new Map(); } setClient(client) { @@ -1613,8 +1614,12 @@ class NMDeviceToggle extends NMToggle { _syncDeviceNames() { const devices = [...this._nmDevices]; const names = NM.Device.disambiguate_names(devices); + this._deviceNames.clear(); devices.forEach( - (dev, i) => this._items.get(dev)?.setDeviceName(names[i])); + (dev, i) => { + this._deviceNames.set(dev, names[i]); + this._items.get(dev)?.setDeviceName(names[i]); + }); } _syncDeviceItem(device) { @@ -1647,6 +1652,7 @@ class NMDeviceToggle extends NMToggle { return; const item = this._createDeviceMenuItem(device); + item.setDeviceName(this._deviceNames.get(device) ?? ''); this._addItem(device, item); }